function [ netOutput ] = valPattern( weightsVector, pattern )
% VALPATTERN 
%   Esta funcion se ocupa de evaluar la salida a partir del patron recibido
%   como parametro.
%   Esta función se invoca una vez que la red ya fue entrenada, con los
%   pesos ya modificados
%
%   Input:
%       vectorWeights: Vector con las matrices de pesos
%       pattern: Patrón a evaluar
%
%   Output:
%       netOutput: Vector con el valor de las neuronas de salida
    global LAYERS;

    nOfLayers = length(LAYERS);
    layerNeurons = pattern;
    for j = 1:nOfLayers                                         % for each layer, obtain output of the units in that layer and propagate! We add the -1 as the threshold
        hj = weightsVector{j}*vertcat(-1, layerNeurons);        % select matrix_j which represents weights between units in layer j and its predecesor units + thresholds
        layerNeurons = g_function(hj);
    end
    netOutput = layerNeurons;

end

